有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

netbeans 7无法从另一个平台运行java项目

我有两个项目。java和其他。JAVA我想从try运行另一个java。爪哇

这是另一个的代码。爪哇

package another;

public class Another {

    public static void main(String[] args) 
    {
        System.out.println("Another Java Project");
    }
}

这是mycode供您试用。爪哇

package pkgtry;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Try 
{
    private static void printLines(String name, InputStream ins) throws Exception {
    String line = null;
    BufferedReader in = new BufferedReader(new InputStreamReader(ins));
    while ((line = in.readLine()) != null) 
    {
        System.out.println(name + " " + line);
    }
}

private static void runProcess(String command) throws Exception 
{
    Process pro = Runtime.getRuntime().exec(command);
    printLines(command + " stdout:", pro.getInputStream());
    printLines(command + " stderr:", pro.getErrorStream());
    pro.waitFor();
    System.out.println(command + " exitValue() " + pro.exitValue());
}

public static void main(String[] args) 
{
    try 
    {
        runProcess("javac C:\\Users\\owner\\Documents\\NetBeansProjects\\try\\src\\pkgtry\\Another.java");
  runProcess("java C:\\Users\\owner\\Documents\\NetBeansProjects\\try\\src\\pkgtry\\Another");
    }
    catch (Exception e) 
    {
        e.printStackTrace();
    }
}
}

在尝试之后。java不打印任何东西。它只是在netbeans中成功地打印构建。但是一门课是另一门课。卡斯被创造出来了

有人能帮我吗


共 (3) 个答案

  1. # 1 楼答案

    这样做怎么样:

    try 
        {
        runProcess("cd C:\\Users\\owner\\Documents\\NetBeansProjects\\try\\src\\pkgtry);
        runProcess("javac Another.java");
        runProcess("java Another");
        }
    

    有没有这样的可能

  2. # 2 楼答案

    java编译器正在试图找到另一个。包pkgtry内的java文件。如果你把这两个文件放在一个包里,那么你就能达到预期的效果

    public static void main(String[] args) 
    {
       try 
       {
         runProcess("javac Another.java");
         runProcess("java Another");
       }
       catch (Exception e) 
       {
         e.printStackTrace();
       }
    }
    
  3. # 3 楼答案

    看起来Another.java不在运行代码的目录中。特别是,您正在设法调用javacjava,看起来两者都在接收您指定的参数,但它找不到Another.java

    另外,您需要为java提供完全限定的类名,在本例中,它是another.Another,就像它在another包中一样。这也意味着您需要以这样一种方式编译它,即将类文件保留在适当的目录结构中

    所以你想要这样的东西:

    runProcess("javac -d . path/to/Another.java");
    runProcess("java another.Another");
    

    (其中path/to/Another.java是绝对文件名或相对于工作目录的文件名。)

    -d .将告诉javac在当前工作目录中为输出文件构建根目录结构

    编辑:现在我们知道你在哪里跑步,你可以使用:

    runProcess("javac -d . src/pkgtry/Another.java");
    runProcess("java another.Another");
    

    请注意,应该将源代码组织在一个文件夹结构中,以匹配包结构,因此它应该位于名为another的目录中,而不是pkgtry